Ext.onReady(function() {
	Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';
	// 订货人数据列表
	var storeTperson = new Ext.data.Store({
				baseParams : {
					trancode : 'Tperson'
				},
				proxy : new Ext.data.HttpProxy({
							url : '../' + WebServiceUrl
						}),
				reader : new Ext.data.JsonReader({
							root : 'root'
						}, [{
									name : 'idt_person',
									type : 'int'
								}, {
									name : 'pname',
									type : 'string'
								}])
			});

	var dhr = new Ext.form.ComboBox({
				store : storeTperson,
				allowBlank : false,
				triggerAction : 'all',
				displayField : 'pname',
				tabIndex : 1,
				valueField : 'idt_person',
				fieldLabel : '订  货  人',
				hiddenName : 'pid',
				model : 'remote',
				editable : false,
				anchor : '90%',
				emptyText : '请选择订货人'
			});

	// 供应商名称下拉列表
	var storeProvider = new Ext.data.Store({
				baseParams : {
					trancode : 'Provider'
				},
				proxy : new Ext.data.HttpProxy({
							url : '../' + WebServiceUrl
						}),
				reader : new Ext.data.JsonReader({
							root : 'root'
						}, [{
									name : 'uname',
									type : 'string'
								}, {
									name : 'id',
									type : 'int'
								}])
			});
	var ghs = new Ext.form.ComboBox({
				store : storeProvider,
				allowBlank : false,
				triggerAction : 'all',
				displayField : 'uname',
				tabIndex : 7,
				valueField : 'id',
				fieldLabel : '供  应  商',
				hiddenName : 'provuid',
				model : 'remote',
				editable : false,
				anchor : '90%',
				emptyText : '请选择供应商...'
			});

	// 销售订单未审核数据下拉列表
	var OrderCheckData = new Ext.data.Store({
				baseParams : {
					trancode : 'OrderChecked'
				},
				proxy : new Ext.data.HttpProxy({
							url : '../' + WebServiceUrl
						}),
				reader : new Ext.data.JsonReader({
							root : 'root'
						}, [{
									name : 'suser',
									type : 'string'
								}, {
									name : 'username',
									type : 'string'
								}])
			});
	var sm = new Ext.grid.CheckboxSelectionModel({
				handleMouseDown : Ext.emptyFn
			});



	var OrderCheckData = new Ext.data.Store({
				baseParams : {
					trancode : 'OrderChecked'
				},
				proxy : new Ext.data.HttpProxy({
							url : '../' + WebServiceUrl
						}),
				reader : new Ext.data.JsonReader({
							root : 'root'
						}, [{
									name : 'suser',
									type : 'string'
								}, {
									name : 'username',
									type : 'string'
								}])
			});
	var customer_nameCombo = new Ext.form.ComboBox({
				store : OrderCheckData,
				displayField : 'suser',
	            mode : 'remote',
				allowBlank : false,
				editable : false,
				triggerAction : 'all',
				listWidth : 100
			});
	var specNameCombo = new Ext.form.ComboBox({
				store : new Ext.data.SimpleStore({
							fields : ["type", "typeName"],
							data : [['1', '特殊采购'], ['0', '普通采购'],
									['2', '紧急采购'], ['3', '新品采购']]
						}),
				displayField : 'typeName',
				valueField : 'type',
				mode : 'local',
				allowBlank : false,
				editable : false,
				triggerAction : 'all',
				listWidth : 100
			});
	var cm = new Ext.grid.ColumnModel([sm, {
				header : '对应客户',
				dataIndex : 'username',
				width : 140,
				editor : new Ext.form.TextField({
							readOnly : false,
							allowBlank : false
						})
			},{
				header : '采购类型',
				dataIndex : 'type',
				width : 80,
				editor : specNameCombo,
				renderer : function(val, params, record) {
					var opts = specNameCombo.store.data.items;
					for (var i = 0, len = opts.length; i < len; i++) {
						if (opts[i].data.type == val) {
							record.data.type = val;
							return opts[i].data.typeName;
						}
					}
					return val;
				}
			}, {
				header : '物料名称',
				dataIndex : 'materielname',
				width : 150
			}, {
				header : '物料规格',
				dataIndex : 'spec',
				width : 150
			}, {
				header : '厂家条码',
				dataIndex : 'factcode',
				width : 100,
				editor : new Ext.form.TextField({
							allowBlank : false,
							allowNegative : false
						})
			}, {
				header : '条形码',
				dataIndex : 'barcode',
				width : 100,
				editor : new Ext.form.TextField({
							allowBlank : false
						})
			}, {
				header : '厚',
				dataIndex : 'attrib4',
				width : 60,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			}, {
				header : '到货数量',
				dataIndex : 'comeamount',
				width : 80,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			}, {
				header : '单位',
				dataIndex : 'attrib1',
				width : 80,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			}, {
				header : '长',
				dataIndex : 'attrib2',
				width : 60,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			}, {
				header : '宽',
				dataIndex : 'attrib3',
				width : 60,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			},{
				header : '订货数量',
				dataIndex : 'amount',
				width : 80,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			},  {
				header : '其它标量值',
				dataIndex : 'attrib5',
				width : 60,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			}, {
				header : '采购单价',
				dataIndex : 'inprice',
				width : 80,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			}, {
				header : '含税价',
				dataIndex : 'taxprice',
				width : 80,
				editor : new Ext.form.NumberField({
							allowBlank : false,
							allowNegative : false,
							minValue : 0
						})
			}, {
				header : '备注',
				dataIndex : 'remark',
				width : 110,
				editor : new Ext.form.TextField({
							readOnly : false,
							allowBlank : false
						})
			}]);
	cm.defaultSortable = true;
	cm.setHidden(5, !cm.isHidden(5));// 隐藏单位列
	cm.setHidden(6, !cm.isHidden(6));// 隐藏单位列
	cm.setHidden(8, !cm.isHidden(8));// 隐藏单位列
	cm.setHidden(15, !cm.isHidden(15));// 隐藏单位列
	var ds = new Ext.data.Store({
				reader : new Ext.data.ArrayReader({}, [{
									name : 'id'
								}, {
									name : 'hid'
								}, {
									name : 'ord'
								}, {
									name : 'materielid'
								}, {
									name : 'materielname'
								}, {
									name : 'spec'
								}, {
									name : 'factcode'
								}, {
									name : 'barcode'
								}, {
									name : 'amount'
								}, {
									name : 'comeamount'
								}, {
									name : 'inprice'
								}, {
									name : 'taxprice'
								}, {
									name : 'type'
								}, {
									name : 'flag'
								}, {
									name : 'modipid'
								}, {
									name : 'modidate'
								}, {
									name : 'remark'
								}, {
									name : 'attrib1'
								}, {
									name : 'attrib2'
								}, {
									name : 'attrib3'
								}, {
									name : 'attrib4'
								}, {
									name : 'attrib5'
								},{
								    name : 'username'}])
			});

	var orderTypeD = Ext.data.Record.create([{
				name : 'id'
			}, {
				name : 'hid'
			}, {
				name : 'ord'
			}, {
				name : 'materielid'
			}, {
				name : 'factcode'
			}, {
				name : 'barcode'
			}, {
				name : 'amount'
			}, {
				name : 'comeamount'
			}, {
				name : 'inprice'
			}, {
				name : 'taxprice'
			}, {
				name : 'type'
			}, {
				name : 'flag'
			}, {
				name : 'modipid'
			}, {
				name : 'modidate'
			}, {
				name : 'remark'
			}, {
				name : 'attrib1'
			}, {
				name : 'attrib2'
			}, {
				name : 'attrib3'
			}, {
				name : 'attrib4'
			}, {
				name : 'attrib5'
			}, {
				name : 'spec'
			},{ 
			    name: 'username'}]);

	var grid = new Ext.grid.EditorGridPanel({
		store : ds,
		cm : cm,
		sm : sm,
		buttonAlign : 'center',
		trackMouseOver : false,
		bodyStyle : 'width:100%',
		height : 280,
		title : '物料预定单明细',
		clicksToEdit : 1,
		tbar : [{
					text : '添加明细',
					iconCls : 'add',
					handler : function() {
						new App.CheckBoxGrid(grid);
					}
				}, '-', {
					id : 'btnDelete',
					text : '删除明细',
					iconCls : 'remove',
					handler : function() {
						var selected = grid.getSelectionModel().getSelections();
						if (selected.length == 0) {
							Ext.MessageBox.alert('提示信息', '请选择至少一条明细删除！');
						} else {
							for (var i = 0; i < selected.length; i++) {
								ds.remove(selected[i]);
							}
						}
					}
				}],
		buttons : [{
			text : '保 存',
			tabIndex : 24,
			handler : function() {
				if (top.form.isValid()) {
					var json = [];
					for (i = 0, cnt = ds.getCount(); i < cnt; i += 1) {
						var record = ds.getAt(i);
						json.push(record.data);
					}
					if (json.length == 0) {
						Ext.Msg.alert('提示信息', '至少一条明细信息！');
						return;
					}
					top.form.submit({
								waitTitle : "请稍候",
								waitMsg : '正在保存数据...',
								params : {
									trancode : '42122',
									json : Ext.encode(json)
								},
								method : 'Post',
								failure : function() {
									Ext.MessageBox.alert('操作失败', '联系管理员');
								},
								success : function(form, action) {
									if (action.result.success) {
										Ext.MessageBox.alert('操作成功',
												action.result.message);
										top.form.reset();
										grid.getStore().removeAll();
									} else {
										Ext.MessageBox.alert('操作失败',
												action.result.message);
									}
								}
							});
				} else {
					Ext.MessageBox.alert('输入错误', '请输完内容后再保存！');
				}
			}
		}, {
			text : '取 消',
			tabIndex : 24,
			handler : function() {
				top.getForm().reset();
			}
		}]
	});

	var top = new Ext.FormPanel({
				labelAlign : 'right',
				id : 'top',
				frame : true,
				renderTo : 'addpanel',
				url : '../' + WebServiceUrl,
				title : '物料预定单添加',
				bodyStyle : 'padding:5px 5px 0',
				width : '100%',
				height : Ext.get("addpanel").getHeight(),
				items : [{
							layout : 'column',
							items : [{
										columnWidth : .5,
										layout : 'form',
										items : [{
													xtype : 'textfield',
													fieldLabel : '订  单  号',
													tabIndex : 1,
													maxLength : 16,
													emptyText : '自动生成',
													name : 'planno',
													readOnly : true,
													anchor : '90%'
												}, dhr]
									}, {
										columnWidth : .5,
										layout : 'form',
										items : [ghs, {
													xtype : 'numberfield',
													fieldLabel : '运    费',
													tabIndex : 1,
													maxLength : 16,
													allowBlank : false,
													name : 'tranmoney',
													value : 0,
													anchor : '90%'
												}]
									}, {
										columnWidth : .5,
										layout : 'form',
										items : [{
													columnWidth : .5,
													layout : 'form',
													items : [{
																xtype : 'datefield',
																fieldLabel : '计划到货时间',
																format : "Y-m-d",
																tabIndex : 9,
																readOnly : true,
																allowBlank : false,
																name : 'comedate',
																value : new Date(),
																anchor : '90%'
															}]
												}]
									}, {
										columnWidth : .5,
										layout : 'form',
										items : [{
													columnWidth : .5,
													layout : 'form',
													items : [{
																xtype : 'datefield',
																fieldLabel : '订单有效时间',
																format : "Y-m-d",
																tabIndex : 9,
																readOnly : true,
																allowBlank : false,
																name : 'validdate',
																value : new Date(),
																anchor : '90%'
															}]
												}]
									}]
						}, {
							xtype : 'textarea',
							fieldLabel : '备  注',
							tabIndex : 10,
							maxLength : 200,
							minLength : 1,
							name : 'remark',
							anchor : '95%'
						}, grid]
			});
});